package br.com.sistema.web.mb.permissao;

import java.util.List;

import br.com.framework.client.negocio.factory.FacadeFactory;
import br.com.framework.client.permissao.entidade.Tela;
import br.com.framework.client.web.Paginador;
import br.com.framework.client.web.TipoOrdenacaoPaginador;
import br.com.sistema.negocio.facade.permissao.IFacadeTela;

public class TelaPaginador extends Paginador<String, Tela> {

	private static final long serialVersionUID = 1472603786458828653L;

	private List<Tela> telas;
	private Tela tela;

	private TipoOrdenacaoPaginador typeOrder;

	public TelaPaginador(FacadeFactory facadeFactory, Tela tela, TipoOrdenacaoPaginador typeOrder) {
		super(facadeFactory);
		this.tela = tela;
		this.typeOrder = typeOrder;
	}

	@Override
	public List<Tela> consultar(int primeiraLinha, int numeroDeLinhas, String orderBy, boolean descendente) {
		return consultar(primeiraLinha, numeroDeLinhas);
	}

	private List<Tela> consultar(int primeiraLinha, int numeroDeLinhas) {
		telas = facadeFactory.getFacade(IFacadeTela.class).buscar(tela, typeOrder, primeiraLinha, numeroDeLinhas);
		return telas;
	}

	@Override
	public String getChavePrimaria(Tela tela) {
		return tela.getId() + "";
	}

	@Override
	public String getDefaultOrderBy() {
		return null;
	}

	@Override
	public int getTotalLinhas() {
		return facadeFactory.getFacade(IFacadeTela.class).buscarTotal(tela);
	}

	@Override
	public Tela pesquisarPorChavePrimaria(String pk) {
		return null;
	}

	public List<Tela> getTelas() {
		return telas;
	}

	public void setTelas(List<Tela> telas) {
		this.telas = telas;
	}

}
